#include <stdio.h>
#include <string.h>
#include <unistd.h>

#include "ohos_init.h"
#include "cmsis_os2.h"

#include "iot_uart.h"
#include "iot_gpio.h"   // OpenHarmony HAL：IoT硬件设备操作接口-GPIO
#include "iot_errno.h"  // OpenHarmony HAL：IoT硬件设备操作接口-错误代码定义

#include "hi_io.h"      // 海思 Pegasus SDK：IoT硬件设备操作接口-IO
#include "hi_adc.h"     // 海思 Pegasus SDK：IoT硬件设备操作接口-ADC


#define IOT_UART_IDX_2 2

void JW01Init()
{
    uint32_t ret;
    int i=0;
    
    // 这部分代码为UART初始化的代码，首先要在uart_attr结构体这配置波特率、数据位、停止位、奇偶检验位，然后通过UartInit()函数对串口1进行配置。
    IotUartAttribute uart_attr = 
    {
        //波特率: 9600
        .baudRate = 9600,
        //data_bits: 8bits
        .dataBits = 8,
        .stopBits = 1,
        .parity = 0,
    };

    //初始化引脚
    IoTGpioInit(HI_IO_NAME_GPIO_12);
    IoTGpioInit(HI_IO_NAME_GPIO_11);
    //设置为引脚功能为RX TX
    hi_io_set_func(HI_IO_NAME_GPIO_12,HI_IO_FUNC_GPIO_12_UART2_RXD);
    hi_io_set_func(HI_IO_NAME_GPIO_11,HI_IO_FUNC_GPIO_11_UART2_TXD);

    ret = IoTUartInit(IOT_UART_IDX_2, &uart_attr);
    if (ret != IOT_SUCCESS)
    {
        printf("Failed to init uart! Err code = %d\n", ret);
        return;
    }
    printf("Uart Test Start!!!\n");
        

}
void ReadJW01()
{
    uint8_t buffer[6]={0};
    IoTUartRead(IOT_UART_IDX_2,buffer,6);

    int data=buffer[1]*256+buffer[2];
    printf("CO2 sensor :%d\n",data);

    float s=(float)data/10000;

    printf("CO2:%f%%\n",s);
    usleep(30*000);
}
